package com.example.apidocserver.application.event;

import com.example.apidocserver.domain.document.entity.ApiParamField;

import java.util.List;

/**
 * 字段相关处理事件
 *
 * @author xyqlg
 */
public interface FieldEvent {

    /**
     * 查询显示名称字段
     *
     * @param world   字段搜索
     * @param apiId   接口id
     * @param spaceId 工作空间id
     * @return 字段集合
     */
    List<ApiParamField> findLikeFields(String world, Integer apiId, Integer spaceId);

    /**
     * 根据uniKey查询接口数据
     *
     * @param field 字段对象
     * @return 字段对象
     */
    ApiParamField findByUinKey(ApiParamField field);

    /**
     * 查询工作空间所有字段说明
     *
     * @param spaceId 工作空间id
     * @return 字段说明集合
     */
    List<ApiParamField> findBySpaceId(Integer spaceId);

    boolean deleteById(Integer fieldId);

    void upsertOne(ApiParamField field);
}
